package com.yungu.swift.assets.passenger.service;

import com.yungu.swift.assets.passenger.model.dto.PassengerInvoiceDto;
import com.yungu.swift.assets.passenger.model.param.AdminPassengerInvoicePageParam;
import com.yungu.swift.assets.passenger.model.param.AdminPassengerInvoiceParam;
import com.yungu.swift.assets.passenger.model.param.ApiPassengerInvoiceParam;
import com.yungu.swift.assets.passenger.model.vo.PassengerInvoiceAdminVo;
import com.yungu.swift.base.ResponseData;
import com.yungu.swift.base.model.PageVo;
import com.yungu.swift.base.service.BaseService;

import java.util.List;


/**
 * Copyright © 厦门云谷互联信息有限公司 2018-2020 All Right Reserved
 * <p>
 * 乘客发票业务逻辑处理接口
 *
 * @author cuixiuyin - Generate
 * @version 1.1.1-SNAPSHOT
 * @since 2018-07-04 13:50
 */
public interface PassengerInvoiceService extends BaseService<PassengerInvoiceDto> {

    /**
     * 后台分页查询
     *
     * @param invoicePageParam
     * @return
     */
    ResponseData<PageVo<PassengerInvoiceAdminVo>> queryPageAdmin(AdminPassengerInvoicePageParam invoicePageParam);

    /**
     * 后台数据导出
     *
     * @param invoicePageParam
     * @return
     */
    ResponseData<List<PassengerInvoiceAdminVo>> listExport(AdminPassengerInvoicePageParam invoicePageParam);

    /**
     * 发票详情
     *
     * @param uuid 参数
     * @return PassengerInvoiceAdminVo
     */
    ResponseData<PassengerInvoiceAdminVo> detail(String uuid);

    /**
     * 发票信息处理
     *
     * @param passengerInvoiceParam
     * @return
     */
    ResponseData<Boolean> saveOrUpdate(AdminPassengerInvoiceParam passengerInvoiceParam);

    /**
     * 开票
     *
     * @param pasInvoiceParam 开票参数
     * @return AjaxList
     */
    ResponseData<PassengerInvoiceDto> billing(ApiPassengerInvoiceParam pasInvoiceParam);

}